package com.dhcc.DRGsHosp.facade;

import java.util.List;
import java.util.Map;

import org.openkoala.koala.commons.InvokeResult;

import com.dhcc.DRGsHosp.core.domain.MedicalRecordQuality;

/**
 *
 * 功能描述: 首页质控
 *
 * @param:
 * @return:
 * @auther: chenhanlin
 * @date: 2018/7/25 10:51
 *
 */
public interface MedicalRecordQualityFacade {
	
	
	/**
	 * @Description: 首页违规病例明细
	 * @param  
	 * @return  
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/11 21:00 
	 */
	Map<String,Object> loadMRQualityCaseDtl(Map<String,Object> condition) ;
	
	/**
	 *
	 * @Description:  质控前数据准备
	 * @param:
	 * @return:
	 * @auther: chenhanlin
	 * @date: 2018/8/2 10:01
	 */
	public void dataPreparation() ;

	/**
	 * @Description: 首页质控方法-分批处理
	 * @param
	 * @return
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/2 16:54
	 */
	public void batchMedicalRecordQualityAnalysis(Map<String,Object> condition) ;

	/**
	 *
	 * 功能描述: 质控首页数据-单个病例
	 *
	 * @param:
	 * @return:
	 * @auther: chenhanlin
	 * @date: 2018/7/25 11:10
	 */
	public void singleMedicalRecordQualityAnalysis(MedicalRecordQuality medicalRecordQuality) ;
	/**
	 *
	 * @Description:    根据条件查询质控的首页数据
	 * @param:
	 * @return:
	 * @auther: chenhanlin
	 * @date: 2018/7/28 17:40
	 */
	public void findMedicalRecordQuality(Map<String,Object> condition);
	/**
	 *
	 * @Description:    根据病例pmainindex删除相应的质控记录
	 * @param:
	 * @return:
	 * @auther: chenhanlin
	 * @date: 2018/7/28 17:41
	 */
	public void deleteMedicalRecordQualityByPmainindex(String pmainindex) ;

	/**
	 * @Description: 保存病案的质控结果
	 * @param  
	 * @return  
	 * @throws
	 * @author chenhanlin
	 * @date 2018/7/28 17:45 
	 */
	public void saveMedicalRecordQuality(MedicalRecordQuality medicalRecordQuality) ;
	/**
	 * @Description: 质控病例
	 * @param  
	 * @return  
	 * @throws
	 * @author chenhanlin
	 * @date 2018/7/28 18:11
	 */
	public void qualityMedicalRecored(MedicalRecordQuality medicalRecordQuality) ;
	
	/**
	 * @Description: 病案质量 病例汇总
	 * @param
	 * @return
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/6 16:29
	 */
    List<Map<String,Object>> overviewMRCount(Map<String, Object> condition);

    /*
	 * @Description: 病案质量 质控项汇总
	 * @param
	 * @return
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/6 16:29
	 */
    List<Map<String,Object>> overviewItemCount(Map<String, Object> condition);

	/**
	 * @Description: 各项得分情况
	 * @param
	 * @return
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/7 21:17
	 */
	List<Map<String,Object>> queryScore(Map<String, Object> condition);

	/**
	 * @Description: 查询各项的满分分数
	 * @param  
	 * @return  
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/7 21:29 
	 */
	InvokeResult  initializeFullScore();

	/**
	 * @Description:  查询违规项
	 * @param
	 * @return
	 * @throws
	 * @author chenhanlin
	 * @date 2018/8/9 13:43
	 */
    List<Map<String,Object>> violationItems(Map<String, Object> condition);

    /**
     * @Description:  查询违规科室/病区/医师
     * @param
     * @return
     * @throws
     * @author chenhanlin
     * @date 2018/8/9 13:43
     */
	List<Map<String,Object>> violationDeps(Map<String, Object> condition);
    /**
     * @Description:  查询运行状态参数
     * @param
     * @return
     * @throws
     * @author qiaoyilong
     * @date 2018/8/14 16:43
     */	
	public Map<String,String> getBatchAnalysisParameter();

}
